namespace BepuPhysics
{
    /// <summary>
    /// 模拟的公共分配大小集。
    /// </summary>
    public struct SimulationAllocationSizes
    {
        /// <summary>
        /// 要为其分配空间的实体数。
        /// </summary>
        public int Bodies;
        /// <summary>
        /// 要为其分配空间的静态机数量。
        /// </summary>
        public int Statics;
        /// <summary>
        /// 要为其分配空间的非活动岛数。
        /// </summary>
        public int Islands;
        /// <summary>
        /// 在每个形状类型批中为其分配空间的最小形状数。
        /// </summary>
        public int ShapesPerType;
        /// <summary>
        /// 要为其分配记账空间的约束数。这不影响实际类型批处理分配大小,只影响求解器级别的约束句柄存储。
        /// </summary>
        public int Constraints;
        /// <summary>
        /// 在每个单独的类型批处理中要为其分配空间的最小约束数。
        /// 将为新类型批提供足够的内存来满足此数量的约束,任何压缩都不会减少其下面的分配。
        /// 约束的数量在不同类型之间可能有很大差异-接触数量通常比碎布玩偶约束多得多。
        /// 如有必要,可以在Solver.TypeBatchAllocation中分配每种类型的估计值。该值充当所有类型的下限。
        /// </summary>
        public int ConstraintsPerTypeBatch;
        /// <summary>
        /// 在每个主体的约束列表中要为其分配空间的最小约束数。
        /// 将为新实体提供足够的内存来容纳此数量的约束,任何压缩都不会减少其下面的分配。
        /// </summary>
        public int ConstraintCountPerBodyEstimate;

    }
}
